# TEMPLATE = lib

DEFINES += Viewer3DAPI Viewer3DAPI_ColorPalette Viewer3DAPI_ModelPrimitive Viewer3DAPI_ModelDisplayer Viewer3DAPI_SnapShotSetting Viewer3DAPI_DirectionSelector

QT       += core gui opengl

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

INCLUDEPATH += $$PWD/Libs/opencv/include
INCLUDEPATH += $$PWD/Loader/include
INCLUDEPATH += $$PWD/Loader/headers
INCLUDEPATH += $$PWD/Displayer/headers
INCLUDEPATH += $$PWD/Viewer/headers
INCLUDEPATH += $$PWD/Algo/headers

CONFIG(debug, debug|release) {
    LIBS += -L$$PWD/Libs/OpenGLLib/Debug -lQt6OpenGLd
    LIBS += -L$$PWD/Libs/OpenGLLib/Debug -lQt6OpenGLWidgetsd
    LIBS += -L$$PWD/Libs/OpenGLLib/Debug -lopengl32 -lglu32

    LIBS += -L$$PWD/Libs/AssimpLib/Debug -lassimp-vc143-mtd

    LIBS += -L$$PWD/Libs/opencv/lib -lopencv_world460d

} else {
    LIBS += -L$$PWD/Libs/OpenGLLib/Release -lQt6OpenGL
    LIBS += -L$$PWD/Libs/OpenGLLib/Release -lQt6OpenGLWidgets
    LIBS += -L$$PWD/Libs/OpenGLLib/Release -lopengl32 -lglu32

    LIBS += -L$$PWD/Libs/AssimpLib/Release -lassimp-vc143-mt

    LIBS += -L$$PWD/Libs/opencv/lib -lopencv_world460
}

SOURCES += \
    Algo/cpps/ContoursExtractor.cpp \
    Algo/cpps/ContoursPostprocessing.cpp \
    Algo/cpps/ModelAlgoManager.cpp \
    Algo/cpps/ModelAttributesCalculator.cpp \
    Algo/cpps/ModelSlicesProducer.cpp \
    Displayer/cpps/ModelColorPalette.cpp \
    Displayer/cpps/ModelDisplayer.cpp \
    Displayer/cpps/SlicingSettingsDialog.cpp \
    Displayer/cpps/SnapShotSettingDialog.cpp \
    Loader/cpps/ModelFileLoader.cpp \
    Loader/cpps/ModelFormation.cpp \
    Viewer/cpps/ModelViewer.cpp \
    Viewer/cpps/PreviewDirectionSelector.cpp \
    main.cpp \
    domain.cpp

HEADERS += \
    3DLoader.h \
    Algo/headers/ContoursExtractor.h \
    Algo/headers/ContoursPostprocessing.h \
    Algo/headers/ModelAlgoManager.h \
    Algo/headers/ModelAttributesCalculator.h \
    Algo/headers/ModelSlicesProducer.h \
    Displayer/headers/SlicingSettingsDialog.h \
    Displayer/headers/SnapShotSettingDialog.h \
    Displayer/headers/ModelColorPalette.h \
    Displayer/headers/ModelDisplayer.h \
    Loader/headers/IModelFileLoader.h \
    Loader/headers/ModelFileLoader.h \
    Loader/headers/ModelFormation.h \
    Loader/include/assimp/AssertHandler.h \
    Loader/include/assimp/Base64.hpp \
    Loader/include/assimp/BaseImporter.h \
    Loader/include/assimp/Bitmap.h \
    Loader/include/assimp/BlobIOSystem.h \
    Loader/include/assimp/ByteSwapper.h \
    Loader/include/assimp/ColladaMetaData.h \
    Loader/include/assimp/CreateAnimMesh.h \
    Loader/include/assimp/DefaultIOStream.h \
    Loader/include/assimp/DefaultIOSystem.h \
    Loader/include/assimp/DefaultLogger.hpp \
    Loader/include/assimp/Exceptional.h \
    Loader/include/assimp/Exporter.hpp \
    Loader/include/assimp/GenericProperty.h \
    Loader/include/assimp/GltfMaterial.h \
    Loader/include/assimp/Hash.h \
    Loader/include/assimp/IOStream.hpp \
    Loader/include/assimp/IOStreamBuffer.h \
    Loader/include/assimp/IOSystem.hpp \
    Loader/include/assimp/Importer.hpp \
    Loader/include/assimp/LineSplitter.h \
    Loader/include/assimp/LogAux.h \
    Loader/include/assimp/LogStream.hpp \
    Loader/include/assimp/Logger.hpp \
    Loader/include/assimp/MathFunctions.h \
    Loader/include/assimp/MemoryIOWrapper.h \
    Loader/include/assimp/NullLogger.hpp \
    Loader/include/assimp/ObjMaterial.h \
    Loader/include/assimp/ParsingUtils.h \
    Loader/include/assimp/Profiler.h \
    Loader/include/assimp/ProgressHandler.hpp \
    Loader/include/assimp/RemoveComments.h \
    Loader/include/assimp/SGSpatialSort.h \
    Loader/include/assimp/SceneCombiner.h \
    Loader/include/assimp/SkeletonMeshBuilder.h \
    Loader/include/assimp/SmallVector.h \
    Loader/include/assimp/SmoothingGroups.h \
    Loader/include/assimp/SmoothingGroups.inl \
    Loader/include/assimp/SpatialSort.h \
    Loader/include/assimp/StandardShapes.h \
    Loader/include/assimp/StreamReader.h \
    Loader/include/assimp/StreamWriter.h \
    Loader/include/assimp/StringComparison.h \
    Loader/include/assimp/StringUtils.h \
    Loader/include/assimp/Subdivision.h \
    Loader/include/assimp/TinyFormatter.h \
    Loader/include/assimp/Vertex.h \
    Loader/include/assimp/XMLTools.h \
    Loader/include/assimp/XmlParser.h \
    Loader/include/assimp/ZipArchiveIOSystem.h \
    Loader/include/assimp/aabb.h \
    Loader/include/assimp/ai_assert.h \
    Loader/include/assimp/anim.h \
    Loader/include/assimp/camera.h \
    Loader/include/assimp/cexport.h \
    Loader/include/assimp/cfileio.h \
    Loader/include/assimp/cimport.h \
    Loader/include/assimp/color4.h \
    Loader/include/assimp/color4.inl \
    Loader/include/assimp/commonMetaData.h \
    Loader/include/assimp/defs.h \
    Loader/include/assimp/fast_atof.h \
    Loader/include/assimp/importerdesc.h \
    Loader/include/assimp/light.h \
    Loader/include/assimp/material.h \
    Loader/include/assimp/material.inl \
    Loader/include/assimp/matrix3x3.h \
    Loader/include/assimp/matrix3x3.inl \
    Loader/include/assimp/matrix4x4.h \
    Loader/include/assimp/matrix4x4.inl \
    Loader/include/assimp/mesh.h \
    Loader/include/assimp/metadata.h \
    Loader/include/assimp/pbrmaterial.h \
    Loader/include/assimp/postprocess.h \
    Loader/include/assimp/qnan.h \
    Loader/include/assimp/quaternion.h \
    Loader/include/assimp/quaternion.inl \
    Loader/include/assimp/scene.h \
    Loader/include/assimp/texture.h \
    Loader/include/assimp/types.h \
    Loader/include/assimp/vector2.h \
    Loader/include/assimp/vector2.inl \
    Loader/include/assimp/vector3.h \
    Loader/include/assimp/vector3.inl \
    Loader/include/assimp/version.h \
    Viewer/headers/ModelViewer.h \
    Viewer/headers/PreviewDirectionSelector.h \
    domain.h

FORMS += \
    SlicingSettingsDialog.ui \
    PreviewDirectionSelector.ui \
    SlicingSettingsDialog.ui \
    SnapShotSettingDialog.ui \
    domain.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

DISTFILES += \
    Loader/include/assimp/.editorconfig \
    Loader/include/assimp/config.h.in \
    Loader/include/assimp/module.modulemap \
    Loader/include/assimp/revision.h.in

RESOURCES += \
    shaders.qrc
